#ifndef _NE_MIDI_INTERVAL_H_
#define _NE_MIDI_INTERVAL_H_

#include <neinit.h>

namespace ne
{
    enum MIDIIntervalType
    {
        // Unison interval, 0 semitones
        MIDI_UNISON = 0,
        // Semitone interval, 1 semitone
        MIDI_SEMITONE = 1,
        // Whole Tone interval, 2 semitones
        MIDI_WHOLETONE = 2,
        // Minor Third interval, 3 semitones
        MIDI_MINORTHIRD = 3,
        // Major Third interval, 4 semitones
        MIDI_MAJORTHIRD = 4,
        // Perfect Fourth interval, 5 semitones
        MIDI_PERFECTFOURTH = 5,
        // Tritone interval, 6 semitones
        MIDI_TRITONE = 6,
        // Perfect Fifth interval, 7 semitones
        MIDI_PERFECTFIFTH = 7,
        // Minor Sixth interval, 8 semitones
        MIDI_MINORSIXTH = 8,
        // Major Sixth interval, 9 semitones
        MIDI_MAJORSIXTH = 9,
        // Minor seventh interval, 10 semitones
        MIDI_MINORSEVENTH = 10,
        // Major Seventh interval, 11 semitones
        MIDI_MAJORSEVENTH = 11,
        // Octave interval, 12 semitones
        MIDI_OCTAVE = 12
    };

    const std::string MIDIIntervalNames[13] =
    {
        "Unison",
        "Semitone",
        "Whole tone",
        "Minor third",
        "Major third",
        "Perfect fourth",
        "Tritone",
        "Perfect fifth",
        "Minor sixth",
        "Major sixth",
        "Minor seventh",
        "Major seventh",
        "Octave"
    };
}

#endif
